Linux常用命令总结

preface

  使用linux你永远也无法避过命令行,能熟练地掌握常用命令是一种必备的技能。

command

man

  • manual的缩写:手册,指南
  • 显示所查询命令的用法
    1
    2
    3
    4
    man man //查看man命令的用法
    man ls
    man pwd
    man cd

显示命令的用法后:
     空格键:向下翻页
     B:向上翻页
     Q:退出

ls

  • list缩写
  • 输出目录下的文件和目录信息(默认当前目录)

    1
    2
    3
    4
    5
    ls	//列出当前目录下文件信息
    ls -a //列出当前目录所有文件信息,包括隐藏文件
    ls -l //列出当前目录文件的详细信息(文件属性和权限,硬链接个数,属主,属组,文件大小,最后访问时间,文件或目录名)
    ls / //显示根目录下的文件信息
    ls -al //显示当前目录下所有文件的详细信息
  • 其他用法

    1
    2
    3
    ls -lt	//按修改时间排序显示,从近到远
    ls -R //递归显示当前目录下各目录信息(-R为大写)
    ls -lih //可以显示总大小,带单位

pwd

  • print work directory :打印工作目录
  • 输出当前路径
    1
    pwd

cd

  • change directory
  • 切换目录
    1
    2
    3
    cd /	//切换到根目录
    cd /etc/python3 //切换到目录下
    cd .. //切换到上一层目录

more

  • 分页显示文件内容
  • 比cat方便

mkdir

  • make directory
  • 创建目录/新建文件夹
  • -p:创建多层目录
    1
    mkdir dir_name	//创建名为dir_name的目录

mv

  • move
  • 移动文件或目录,相当于剪切。也可以用来重命名
  • mv [参数] 源文件 目标文件
  • -i 覆盖前给予提示
    1
    2
    3
    mv test.txt d1	//将test.txt移动到d1目录下
    mv d1/test.txt d2 //将d1下的test.txt移动到d2目录下
    mv test.txt ttt.txt //将test.txt重命名为ttt.txt

cp

  • copy
  • 复制文件夹或目录
  • 用法与mv类似
  • -R 源文件为多级目录时,需添加该参数(-R为大写)

rm

  • remove
  • 删除文件或目录
  • -f:force 强制删除,不给任何提示
  • -i:information 删除文件时提供交互信息(输入y或n)
  • -r: recursion 递归删除目录
    1
    2
    rm -rf a.txt	//强制递归删除(root用户谨慎使用)
    rm -r file1/1.txt //递归删除file下的1.txt

chmod

  • change mode
  • 修改权限
    方式①:

u:user即当前用户 g:group当前用户所属组 o: others其他用户 a:all所有
r:read读权限 w:write写 x:execute执行

for example:

1
chmod u-r 1.txt	//去除当前用户对1.txt的读权限

方式②:

1
chmod 777 1.txt

三个数代表的意思:777分别转换为二进制是 111 111 111 ,这九位分别对应以下1-9位权限的有无

df

  • disk free
  • 查看当前系统磁盘使用情况
  • -h 以G或M为单位显示磁盘信息
    1
    df -h

free

  • free -h
  • 查看物理内存使用情况

gzip

  • 用来压缩文件或解压.gz文件
  • -d:解压文件
  • -c:输出到标准输出设备,不更改原始文件
    1
    2
    3
    4
    5
    gzip 1.txt	//压缩1.txt为1.txt.gz(覆盖原文件)
    gzip -d 1.txt.gz //解压1.txt.gz(覆盖原文件)

    gzip -c 1.txt > 1.txt.gz //压缩1.txt(保留原文件)
    gzip -dc 1.txt.gz > 1.txt //解压1.txt.gz(保留原文件)

grep

  • global search regular expression(RE) and print out the line, 全面搜索正则表达式并把行打印出来
    用法:
    1
    grep '正则表达式' 1.txt	//显示1.txt中满足条件的行

ps/kill

  • process status
  • ps:查看系统进程
  • -a: 包括其他用户的所有进程
  • -e:显示当前所有进程
  • -f: 树形格式显示进程
  • -u: 按照用户名或启动时间顺序来显示进程
  • -x: 显示无控制终端的进程
    1
    2
    ps -aux	//常用组合
    ps -ef //常用组合

常见用法:

1
2
3
4
ps -aux	> ps1.txt	//将进程信息输出到ps1.txt
more ps1.txt //用more命令查看

ps -aux | grep '===' //借助grep过滤出满足条件的进程

  • kill:结束进程
    用法:
    1
    kill [进程PID]

tar

  • 打包或压缩文件
  • -c: 建立压缩档案
  • -x:解压
  • -t:查看内容
  • -r:向压缩归档文件末尾追加文件
  • -u:更新原压缩包中的文件
  • —–以下为可选——
  • -z:有gzip属性的
  • -j:有bz2属性的
  • -Z:有compress属性的
  • -v:显示所有过程
  • —–以下为必需——
  • -f: 使用档案名字,切记这个参数是最后一个参数,后面只能接档案名(打包后的)
    打包:
    1
    tar -cvf 1.txt.tar 1.txt

打包并用gzip压缩:

1
tar -czf 1.txt.tar.gz 1.txt

解开tar包:

1
tar -xvf 1.tar

解压.tar.gz:

1
tar -xzvf 1.tar.gz

解压.taz:

1
tar  zxvf  文件名.tgz  -C /pathname

其他用法:

1
2
3
4
5
6
7
8
9
10
# tar -cf all.tar *.jpg
这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。
# tar -rf all.tar *.gif
这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。
# tar -uf all.tar logo.gif
这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。
# tar -tf all.tar
这条命令是列出all.tar包中所有文件,-t是列出文件的意思
# tar -xf all.tar
这条命令是解出all.tar包中所有文件,-t是解开的意思

总结:

1
2
3
4
5
6
7
8
9
压缩:
tar -cvf jpg.tar *.jpg //将目录里所有jpg文件打包成tar.jpg
tar -czf jpg.tar.gz *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz
tar -cjf jpg.tar.bz2 *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2
解压:
tar -xvf file.tar //解压 tar包
tar -xzvf file.tar.gz //解压tar.gz
tar -xjvf file.tar.bz2 //解压 tar.bz2
unzip file.zip //解压zip

总结:

1
2
3
4
5
6
1、*.tar 或 *.tar.xz 用 tar -xvf 解压
2、*.gz 用 gzip -d或者gunzip 解压
3、*.tar.gz和*.tgz 用 tar -xzf 解压
4、*.bz2 用 bzip2 -d或者用bunzip2 解压
5、*.tar.bz2用tar -xjf 解压
6、*.zip 用 unzip 解压

取消打印队列

1
2
3
4
5
6
7
8
9
10
11
12
[root@localhost /]# lpq                   //查看打印队列
printer01 已准备就绪,正在打印
顺序 所有者 作业 文件 总大小
1st root 4 4.c 1024 字节
active root 2 5.c 1024 字节
[root@localhost /]# cancel 4 //取消4号任务
You have new mail in /var/spool/mail/root
[root@localhost /]# lpq //查看打印队列,4号任务已经取消
printer01 已准备就绪,正在打印
顺序 所有者 作业 文件 总大小
active root 2 5.c 1024 字节
[root@localhost /]#

后台运行任务

1
2
3
4
5
在一个命令最后加 &,代表把该命令放后台运行
ctrl+z将正在前台运行的命令放到后台,并使其处于暂定状态
jobs -l #显示所有后台任务(包括编号,状态,运行时的命令)
fg %xxx # 将后台命令调至前台运行,xxx为该任务编号,不是进程号
bg %xxx # 将后台暂停的命令变成在后台继续运行

Linux practice

  • 利用man命令来查看ls/mkdir/mv/cp/rm的用法
  • 利用cd命令切换到上级目录、根目录、home目录、usr目录
  • 利用pwd命令显示当前目录
  • 利用ls命令显示目录下的内容、显示隐藏内容、显示上级目录内容、显示根目录内容
  • 利用mkdir创建一个目录dir_one、递归创建目录、在目录下创建一个文档并写上内容
  • 利用rmdir将创建的目录删除
  • 在本目录下创建一个文档test1,利用mv命令改名为test2,利用cp命令在 本目录下拷贝test1为test3,将test3拷贝到root目录下,用rm将test3删除
  • 首先用echo在屏幕上显示helloworld,其次用echo通过变量的形式显示helloworld
  • 在home目录下创建一个文件夹test1,并tar命令将其压缩为test1.tar.gz,然后将test1删除,然后利用tar命令将test1.tar.gz解压
  • 利用tar/make命令对vim源码包进行加压、配置、编译、安装。

转载请注明出处:http://taowusheng.cn/
微博:寒枫–0-0–
知乎:https://www.zhihu.com/people/tao-wu-sheng
豆瓣:YIFEI